package zdori.swing;

import java.awt.BorderLayout;
import java.awt.EventQueue;
import java.awt.Font;
import java.awt.Image;
import java.util.Enumeration;

import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.UIManager;
import javax.swing.border.EmptyBorder;
import javax.swing.plaf.FontUIResource;

public class SwingMain_1 extends JFrame {

	private JPanel contentPane;

	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try { 
					Thread.sleep(2000);
					
					
					SwingMain_1 frame = new SwingMain_1();
					frame.setLocationRelativeTo(null);
					//화면 정중앙에 표시
					
					frame.setIconImage(initIcon());
					//JFrame에 사용할 아이콘 지정
					
					UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel");
					
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the frame.
	 */
	public SwingMain_1() {
		
		
		
		
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
		
		//프로그램 전체 글꼴 지정
		setUIFont(new FontUIResource("맑은 고딕",Font.ITALIC,14));
		
		
		setTitle("::스윙 세미 프로젝트::");  //제목지정
		setBounds(100, 100, 1024, 768);
		setResizable(false); //크기변경불가
		
		setJMenuBar(new SwingMenu_1());
		//JFrame에 메뉴바 추가
		
		
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		contentPane.setLayout(new BorderLayout(0, 0));
		setContentPane(contentPane);
	}
	
	//프로그램 아이콘 불러오기
			private static Image initIcon(){
				
				String image = "/images/main/home.png";
				//아이콘으로 사용할 이미지가 있는 위치
				Image icon = new ImageIcon(SwingMain.class.getResource(image)).getImage();
				    return icon;
				
			}
			
			
			//FontUIResource 를 이용해서  프로그램 전체 글꼴 변경하기
			//UIManager : 스윙에서 사용가능한 모든 컴퍼넌트에 관한 정보를 다루는 클래스
			
			private void setUIFont(FontUIResource fuir){
				Enumeration<Object> keys = UIManager.getDefaults().keys();
				//모든 스윙컴퍼넌트 이름을 keys에 저장
				
				
				while(keys.hasMoreElements()){
					Object key = keys.nextElement();
					Object val = UIManager.get(key);
					if(val!= null&& val instanceof FontUIResource)UIManager.put(key, fuir);
					//속성이 폰트와 관련 있으면 사용자가 지정한 글꼴로 변경

	}
}

}
